Created Quickstart for OSS Portal Deployment and updated a couple other docs (#1303)

1. Created the Quickstart for OSS Portal Deployment Guide
2. Removed the duplicate information on Bulk Export that you can find in our PaaS documentation
3. Included links for the Search types
4. Updated our TOC for documentation in our Read.me
5. Added a few changes in the Default Deployment Doc
This commit is contained in:
CaitlinV39 2020-10-01 11:52:12 -07:00 коммит произвёл GitHub
Родитель a3557e6244
Коммит e17055c57b
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
8 изменённых файлов: 70 добавлений и 46 удалений

Просмотреть файл

@ -29,15 +29,13 @@ There is also a managed offering in Azure called the [Azure API for FHIR](https:
# Documentation
- [Open Source Deployment](https://docs.microsoft.com/en-us/azure/healthcare-apis/fhir-oss-portal-quickstart): Describes how to deploy FHIR Server for Azure.
- [PaaS Service Deployment](https://docs.microsoft.com/en-us/azure/healthcare-apis/fhir-paas-portal-quickstart): Describes how to deploy Azure API for FHIR.
- [Open Source Deployment](/docs/QuickstartDeployPortal.md): Describes how to deploy FHIR Server for Azure.
- [FHIR Postman tutorial](https://docs.microsoft.com/en-us/azure/healthcare-apis/access-fhir-postman-tutorial): Describes how to access a FHIR API using Postman.
- [Azure Active Directory Application Registrations](docs/PortalAppRegistration.md): Describes how to configure Azure Active Directory (AAD) for use with FHIR Server for Azure.
- [Authentication](docs/Authentication.md): Describes the authentication settings for the FHIR server and how to make use of it in development and test scenarios.
- [Roles](docs/Roles.md): Describes how the FHIR Server for Azure role-based access control (RBAC) system works.
- [Search](docs/Search.md): Describes how search is implemented for the FHIR Server for Azure.
- [Debugging](docs/HowToDebug.md): Describes how to debug FHIR Server for Azure using Visual Studio.
- [Testing with Postman](docs/PostmanTesting.md): Describes how to use Postman for testing FHIR Server for Azure.
- [Sql Schema Migration Guide](docs/SchemaMigrationGuide.md): Describes how to upgrade Schema for Sql Server.
## More Information

Просмотреть файл

@ -38,10 +38,6 @@ https://test-fhir-server/$export
## What is supported
System-wide, Patient compartment, and Group exports are supported. Checking the export status through the URL returned by the location header during the queuing is also supported. Cancelling the actual export job is supported. Note that you will get duplicate resources exported if the resource is in a compartment of more than one resource, or is in multiple groups.
In addition to the features mentioned in the FHIR export specification the query parameter ```_container``` can be used to specify a specific container in the blob storage to export to.
If a container is specified, the data will be exported to that container in a new folder with the name <timestamp>-<id>
If no container is specified, the data will be exported to a new container with the name <id>
For more details on Bulk Export, see the [Azure API for FHIR Export Data page](https://docs.microsoft.com/en-us/azure/healthcare-apis/export-data).
Exported data can be deidentified using the [FHIR Tools for Anonymization](https://github.com/microsoft/FHIR-Tools-for-Anonymization#how-to-perform-de-identified-export-operation-on-the-fhir-server)

Просмотреть файл

@ -52,6 +52,8 @@ Set-FhirServerUserAppRoleAssignments -UserPrincipalName myuser@mydomain.com -Api
## Deploying the FHIR Server Template
We recommend starting with the SQL deployment as it offers the most features. However deployments in cosmos are still available. You can find all of our templates [here](https://github.com/microsoft/fhir-server/tree/master/samples/templates).
To deploy the backend SQL Server, Azure Web App, and FHIR server code, use the buttons below to deploy through the Azure Portal. If you would like to protect the FHIR API with token authorization, you will need to supply application registration details as described above.
<a href="https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2FMicrosoft%2Ffhir-server%2Fmaster%2Fsamples%2Ftemplates%2Fdefault-azuredeploy-sql.json" target="_blank">
@ -62,7 +64,7 @@ To deploy the backend SQL Server, Azure Web App, and FHIR server code, use the b
<img src="https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/1-CONTRIBUTION-GUIDE/images/deploytoazuregov.png">
</a>
The template can also be deployed using PowerShell. Here is an example of how the authorization details from above can be provided:
You can also deploy using PowerShell. The example below leverages the CosmosDB template. Here is an example of how the authorization details from above can be provided:
```PowerShell
$rg = New-AzResourceGroup -Name "RG-NAME" -Location westus2

Просмотреть файл

@ -1,25 +0,0 @@
# Testing Microsoft FHIR Server using Postman
You can use [Postman](https://getpostman.com) to test the FHIR server. If you have deployed with Authentication/Authorization enabled, you will need to [configure Azure AD authorization](https://blog.jongallant.com/2017/03/azure-active-directory-access-tokens-postman/
) to obtain a token. Use type "OAuth 2.0":
[![postman-oauth-settings.png](https://i.postimg.cc/NFZFxfGR/postman-oauth-settings.png)](https://postimg.cc/Wq6sNVk4)
The parameter settings should be:
* Grant Type: `Auhorization Code`
* Callback URL: `https://www.getpostman.com/oauth2/callback`
* Auth URL: `https://login.microsoftonline.com/{TENANT-ID}/oauth2/authorize?resource={AUDIENCE}`
* Access Token URL: `https://login.microsoftonline.com/{TENANT-ID}/oauth2/token`
* Client ID: `CLIENT-APP-ID` (`$clientAppReg.AppId`)
* Client Secret: `SECRET` (`$clientAppReg.AppSecret`)
* Scope: `Ignored` (not used for Azure AD v1.0 endpoints)
* State: e.g., `12345`
* Client Authentication: `Send client credentials in body`
Verify that the following requests return status `200 OK`:
```
GET https://myfhirservice.azurewebsites.net/metadata
GET https://myfhirservice.azurewebsites.net/Patient
```

Просмотреть файл

@ -0,0 +1,53 @@
# Quickstart: Deploy Open Source FHIR server using Azure portal
In this quickstart, you'll learn how to deploy an Open Source FHIR Server in Azure using the Azure portal.
If you don't have an Azure subscription, create a [free account](https://azure.microsoft.com/free/?WT.mc_id=A261C142F) before you begin.
## GitHub Open Source repository
Navigate to the [GitHub deployment page](https://github.com/Microsoft/fhir-server/blob/master/docs/DefaultDeployment.md) and locate the "Deploy to Azure" buttons:
>![Open Source Deployment Page](images/quickstart-oss-portal/deployment-page-oss.png)
Click the deployment button and the Azure portal opens. Note that this will deploy using a custom template with a SQL Server backend. We have options to deploy using a docker image and the ability to deploy into CosmosDB. If you would like to use one of these, please find the templates [here](https://github.com/microsoft/fhir-server/tree/master/samples/templates).
## Fill in deployment parameters
You first need to set the deployment parameters. You can create a new resource group or select an existing resource group. The only other required parameters that don't have a default value filled in are a name for the service, the Sql Admin Password, and to select if SQL Schema Updats are automatically enabled.
>![Custom Deployment Parameters](images/quickstart-oss-portal/deployment-custom-parameters.png)
Below is a table that describes all of the parameters in the custom deployment template.
|Field Name|Required?|Description|
|-|-|-|
|Subscription|**Yes**|Select the subscription where you want to deploy|
|Resource Group|**Yes**|You can create a new resource group or select an existing resource group from the selected subscription|
|Region|**Yes**|The region that you want to deploy|
|Service Name|**Yes**|Name of the FHIR Service Web App (i.e. MyFHIRServer)|
|App Service Plan Resource Group|No|Specify the exact name of your App Service Plan Resource where your App Service Plan lives or leave blank if you want to create a new one|
|App Service Plan Name|No|If you leave this blank, a new one will be created. If you want to use an existing one, you will need to specify the name exactly. Note that an App Service Plan can be either Linux or Windows. The deployment from this page creates a Windows App and so you will need a Windows App Service Plan. If you use the [Docker deployment](https://github.com/microsoft/fhir-server/blob/master/samples/templates/default-azuredeploy-docker-sql.json) you will need a Linux App Service Plan|
|Security Authenticaiton Authority|No|This is the URL to the Authority that will confirm your OAuth. If you leave this blank, authentication is disabled|
|Security Authentication Audience|No|This is the audience for your authentication|
|Enable Aad Smart on Fhir Proxy|**Yes**|Set to true to enable the [AAD Smart on FHIR Proxy](https://docs.microsoft.com/en-us/azure/healthcare-apis/use-smart-on-fhir-proxy)|
|Msdeploy Package Url|No|Webdeploy package to use as depoyment code. If blank, the latest code package will be deployed.|
|Deploy Application Insights|**Yes**|If this is set to true, it enables logging|
|Application Insights Location|**Yes**|Location for Application Insights|
|Additional Fhir Server Config Properties|No|You can specify changes to the App Settings json file. Note that you can also make these changes after deployment|
|Solution Type|**Yes**|Currently this is set to deploy SQL and cannot be changed. If you would like to deploy CosmosDB instead, you can do that [here](https://github.com/microsoft/fhir-server/blob/master/samples/templates/default-azuredeploy.json)|
|Sql Admin Password|**Yes**|This is the admin password for your SQL Server. Note that there are some password requirements that you can read about [here](https://docs.microsoft.com/en-us/sql/relational-databases/security/password-policy?view=sql-server-ver15#password-complexity)|
|Sql Location|**Yes**|This is set by default to deploy to the same region as the web application. If you set this to a different application, you will incure charges since your web application will be in one region and your server will be in another|
|Fhir Version|**Yes**|Select the FHIR version (STU3, R4, or R5) that you want your FHIR Server to be on.|
|Enable Export|No|Determines whether export will be enabled for this fhir instance. If true, a storage account will be created as part of the deployment. You will need owner or user-administrator permissions for this. If you set this to false, you can change it to true after deployment but you will have to create and link the storage account yourself.|
|Sql Schema Automatic Updates Enabled|**Yes**|Setting this to true will mean that you will automatically get schema updates. For production, we recommend setting this to false and using the [Schema Migration Tool](https://github.com/microsoft/fhir-server/blob/master/docs/SchemaMigrationGuide.md)|
After filling in the details, you can start the deployment.
## Validate FHIR Server is running
Once the deployment is complete, you can point your browser to `https://SERVICENAME.azurewebsites.net/metadata` to obtain a capability statement. It will take a minute or so for the server to respond the first time.
## Clean up resources
When no longer needed, you can delete the resource group and all related resources. To do so, select the resource group containing the provisioned resources, select **Delete resource group**, then confirm the name of the resource group to delete.

Просмотреть файл

@ -1,6 +1,6 @@
# Search architecture and implementation
This document attempts to describe how search is implemented for the FHIR service.
This document attempts to describe how search is implemented for the FHIR service. The [FHIR specification](https://www.hl7.org/fhir/search.html) has more information on how search is defined.
Search functionality consists of three areas:
@ -10,35 +10,35 @@ Search functionality consists of three areas:
## Extraction
Because the searchable value can be mapped to any arbitrary property within the resource and the property could be a single value or a list of values, the first step is to extract these searchable values out of the resource. To do that, we use the FHIR Path and the expression defined in the search parameter definition file.
The searchable value for a resource can be mapped to any property within the resource and can also be a single value or a list of values. Because of this, the first step in searching is to extract these searchable values out of the resource. To do that, we use the [FHIR Path](https://hl7.org/fhirpath/) and the expression defined in the search parameter definition file.
These searchable values are in various types. To make persistence and search easy, they will be converted to types that implement a common `ISearchValue` interface, which will be described in more detail in [Normalized search value type](#Normalized-search-value-type) section.
These searchable values are in various types. To make persistence and search easy, the searchable values will be converted to types that implement a common `ISearchValue` interface, which will be described in more detail in [Normalized search value type](#Normalized-search-value-type) section.
### Normalized search value type
Each search parameter type has its own type that implements the `ISearchValue` interface and its responsibility is to normalize the value so that it can be stored using different persistence layers and it can be searched efficiently.
Each search parameter type has its own type that implements the `ISearchValue` interface and its responsibility is to normalize the value so that it can be stored using different persistence layers and efficiently searched.
#### CompositeSearchValue
#### [CompositeSearchValue](https://www.hl7.org/fhir/search.html#composite)
`CompositeSearchValue` simply contains a list of `ISearchValue`. This is because each component of the composite search value could be any search parameter type.
For example, the `code-value-concept` of the `Observation` resource is a composite search parameter with the first component being a token search value and the second component being a `CodeableConcept`, which is a list of token search values. On the other hand, the `coordinate` of the `Sequence` resource is a composite search parameter with the first component being a `CodeableConcept`, which is a list of token search values, and the second and third components being integers.
#### DateTimeSearchValue
#### [DateTimeSearchValue](https://www.hl7.org/fhir/search.html#date)
Because FHIR supports partial dates, all date and time will be normalized into start and end date. Missing portion of the date and time will be populated automatically.
For example, '2018-05' will be populated with start date being '2018-05-01T00:00:00.0000000Z' and end date being '2018-05-31T23:59:59.9999999Z'. '2017-03-01' will be populated with start date being '2017-03-01T00:00:00.0000000Z' and end date being '2017-03-01T23:59:59.9999999Z'.
#### NumberSearchValue
#### [NumberSearchValue](https://www.hl7.org/fhir/search.html#number)
Number value will be stored as decimal value.
#### QuantitySearchValue
#### [QuantitySearchValue](https://www.hl7.org/fhir/search.html#quantity)
System and code will be stored as string values and quantity value will be stored as decimal.
#### ReferenceSearchValue
#### [ReferenceSearchValue](https://www.hl7.org/fhir/search.html#reference)
The resource could contain a reference represented by a relative URL (e.g., Patient/123) or an absolute URL (e.g., <http://example.com/Patient/123>). An absolute URL could be either referencing a "external" resource (e.g., resource that exists on an external system) or referencing a "internal" resource (e.g., resource that exist within the current system). This can be determined by matching the service base URL.
@ -74,15 +74,15 @@ Using the examples above:
_One thing to note is that with this approach if the service base URL changes (e.g., change in the domain name) and there is an internal reference with absolute URL using the old domain name, then the search using the absolute URL with the new service base URL will find resources that contains the absolute URL with the old domain name._
#### StringSearchValue
#### [StringSearchValue](https://www.hl7.org/fhir/search.html#string)
String value will be stored as is.
#### TokenSearchValue
#### [TokenSearchValue](https://www.hl7.org/fhir/search.html#token)
System, code, and text will be stored as string values.
#### UriSearchValue
#### [UriSearchValue](https://www.hl7.org/fhir/search.html#uri)
The Uri will be stored as string value.

Двоичные данные
docs/images/quickstart-oss-portal/deployment-custom-parameters.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 55 KiB

Двоичные данные
docs/images/quickstart-oss-portal/deployment-page-oss.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 100 KiB