The ELM FHIR Simulator acts like a server to return queried resources. It have a validation process to check if the Body is compliant regarding the IHE specification.
Before deploying the project the system MUST have:
index_configs.json file in /opt/datahouse with the following content[
{
"name": "type",
"itemType": "FHIR_DOCUMENT_REFERENCE",
"fieldType": "STRING",
"fullName": "type",
"value": "{\"type\": 1}"
},
{
"name": "date",
"itemType": "FHIR_DOCUMENT_REFERENCE",
"fieldType": "DATE",
"fullName": "date",
"value": "{\"date\": 1}"
},
{
"name": "last_updated",
"itemType": "FHIR_DOCUMENT_REFERENCE",
"fieldType": "DATE",
"fullName": "content.meta.lastUpdated",
"value": "{\"meta.lastUpdated\": 1}"
},
{
"name": "identifier_system",
"itemType": "FHIR_DOCUMENT_REFERENCE",
"fieldType": "STRING",
"fullName": "content.identifier.system",
"value": "{\"identifier.system\": 1}"
},
{
"name": "identifier_value",
"itemType": "FHIR_DOCUMENT_REFERENCE",
"fieldType": "STRING",
"fullName": "content.identifier.value",
"value": "{\"identifier.value\": 1}"
},
{
"name": "elm_status_value",
"itemType": "FHIR_DOCUMENT_REFERENCE",
"fieldType": "STRING",
"fullName": "content.extension.extension.valueCode",
"value": "{\"extension.extension.valueCode\": 1}"
}
]
a deployed Matchbox application: https://github.com/ahdis/matchbox with CH-ELM IG imported and a set up EVSClient application to manage Matchbox validation for ch-elm
having this parameter in system environment (or in .env in case of Docker deployment)
elm.server.base.url=https://www.example.com/elm-simulator/fhir
elm.done.elapse.time.ms=10000
datahouse.page.limit=1000
elm.server.evs.endpoint=https://example.com/evs/rest/validations
elm.server.validation.enabled=true
fhir.validation.name=MatchboxV3
elm.server.validation.profile.publish.documentReference=http://fhir.ch/ig/ch-elm/StructureDefinition/PublishDocumentReference|1.3.1
| Property | Value | Remarks |
|---|---|---|
| elm.server.base.url | https://www.example.com/elm-simulator/fhir | The URL of the deployed application |
| elm.done.elapse.time.ms | 10000 | To simulate the processing in step 4, a timer in millisecond is set. After this specific delay Document elm-status will be automatically updated to “complete” status |
| datahouse.page.limit | 10000 | The page limit of datahouse, SHOULD always be superior to elm pagination |
| elm.server.evs.endpoint | https://example.com/evs/rest/validations | The URL of Gazelle EVS Client to send validation request |
| elm.server.validation.enabled | true | Activate the validation process, should always be true in production |
| fhir.validation.name | MatchboxV3 | Name of the validation service set in evs |
| elm.server.validation.profile.publish.documentReference | http://fhir.ch/ig/ch-elm/StructureDefinition/PublishDocumentReference|1.3.1 | The canoncial URL of Validation Profile for CH:ELM publish docuementReference |
Here is a quick overview of the available functionality from MCSD Fhir Simulator
| Operation | HTTP Methods | URL to call | Entry parameter | Returned value | Remarks |
|---|---|---|---|---|---|
| Publish A DocumentReference | POST | https://example.com/elm-simulator/fhir/ch/DocumentReference | X | - If validation passed: The given DocumentReference with a 201 Created HTTP Code and elm-status=in-progress - If validation failed : a link to the validation report with an failed status |
X |
| Get DocumentReference | GET | https://example.com/elm-simulator/fhir/ch/DocumentReference/{id} | id = id of the resource | The queried resource | X |
| Search DocumentReference | GET | https://example.com/elm-simulator/fhir/ch/DocumentReference?param1=value1[¶mN=valueN..] | elm-status = {completed | in-progress | failed} date = {dateTime format} _lastUpdated = {dateTime format} identifier = {system|value} |
The queried resource with the given parameters | the params can also be used to sort the result with “_sort=”, pagination is also supported with “_count=” parameter |
Capability statement of the application can be found with : https://example.com/elm-simulator/fhir/ch/metadata