FHIR
fhir getfhir getfhir searchfhir searchfhir createfhir createfhir updatefhir updatefhir deletefhir deletefhir bundle_entriesfhir get_valuefhir checkfhir patient_to_row

fhir get <base_url> <path>


Description

    Read a resource or call any GET path relative to the base URL: the JSON of the server as it is, null if the body is empty

Parameters

    base_url:   The base URL of the FHIR server, ex: https://server/fhir (https required, http only on localhost) - String - required
    path:   The URL-encoded path, ex: Patient/p1, Patient/p1/_history/2, metadata - String - required
admin
fhir get "http://127.0.0.1:22580/fhir" "Patient/p1"
mentdb
{"resourceType": "Patient", "id": "p1", "meta": {"versionId": "3", "lastUpdated": "2026-10-01T08:00:00+04:00"}, "identifier": [{"use": "official", "system": "urn:oid:1.2.3.4", "value": "900001", "type": {"coding": [{"code": "MR"}]}}], "active": true, "name": [{"use": "official", "family": "Testpatient", "given": ["Alice", "Marie"]}], "gender": "female", "birthDate": "1980-01-02"}

fhir get <base_url> <path> <json_params>


Description

    Read with parameters: authentication and options of the page

Parameters

    base_url:   The base URL of the FHIR server, ex: https://server/fhir (https required, http only on localhost) - String - required
    path:   The URL-encoded path - String - required
    json_params:   The parameters as a JSON object - String - required
admin
fhir get "http://127.0.0.1:22580/fhir" "metadata" "{\"bearer_token\": \"fictional-token\", \"timeout_ms\": 5000}"
mentdb
{"resourceType": "CapabilityStatement", "fhirVersion": "4.0.1", "status": "active", "kind": "instance"}

fhir create <base_url> <resource_type> <resource_json>


Description

    Create a resource (POST): status, location, etag, id, version_id, resource, outcome. The resourceType must be the given type; the resource is sent as written. No retry

Parameters

    base_url:   The base URL of the FHIR server, ex: https://server/fhir (https required, http only on localhost) - String - required
    resource_type:   The name of the resource, ex: Patient - String - required
    resource_json:   The resource as JSON - String - required
admin
fhir create "http://127.0.0.1:22580/fhir" "Patient" "{\"resourceType\": \"Patient\", \"name\": [{\"family\": \"Testpatient\", \"given\": [\"Alice\"]}], \"birthDate\": \"1980-01-02\"}"
mentdb
{"status": 201, "location": "http://127.0.0.1:22580/fhir/Patient/new1/_history/1", "etag": "W/\"1\"", "id": "new1", "version_id": "1", "resource": {"id": "new1", "resourceType": "Patient", "name": [{"family": "Testpatient", "given": ["Alice"]}], "birthDate": "1980-01-02"}, "outcome": null}

fhir create <base_url> <resource_type> <resource_json> <json_params>


Description

    Create with parameters: prefer (minimal, representation, OperationOutcome), if_none_exist (conditional create), authentication and options of the page

Parameters

    base_url:   The base URL of the FHIR server, ex: https://server/fhir (https required, http only on localhost) - String - required
    resource_type:   The name of the resource, ex: Patient - String - required
    resource_json:   The resource as JSON - String - required
    json_params:   The parameters as a JSON object - String - required
admin
fhir create "http://127.0.0.1:22580/fhir" "Patient" "{\"resourceType\": \"Patient\", \"name\": [{\"family\": \"Testpatient\", \"given\": [\"Alice\"]}], \"birthDate\": \"1980-01-02\"}" "{\"prefer\": \"representation\", \"if_none_exist\": \"identifier=urn:example:mrn|00900001\", \"bearer_token_env\": \"FHIR_TOKEN\"}"
mentdb
{"status": 201, "location": "http://127.0.0.1:22580/fhir/Patient/new1/_history/1", "etag": "W/\"1\"", "id": "new1", "version_id": "1", "resource": {"id": "new1", "resourceType": "Patient", "name": [{"family": "Testpatient", "given": ["Alice"]}], "birthDate": "1980-01-02"}, "outcome": null}

fhir update <base_url> <resource_type> <id> <resource_json>


Description

    Update a resource (PUT): the same result as fhir create. The resourceType and the id of the resource must be the given ones

Parameters

    base_url:   The base URL of the FHIR server, ex: https://server/fhir (https required, http only on localhost) - String - required
    resource_type:   The name of the resource, ex: Patient - String - required
    id:   The id of the resource: 1 to 64 letters, digits, - or . - String - required
    resource_json:   The resource as JSON - String - required
admin
fhir update "http://127.0.0.1:22580/fhir" "Patient" "p1" "{\"resourceType\": \"Patient\", \"id\": \"p1\", \"active\": false}"
mentdb
{"status": 200, "location": "http://127.0.0.1:22580/fhir/Patient/p1/_history/4", "etag": "W/\"4\"", "id": "p1", "version_id": "4", "resource": {"resourceType": "Patient", "id": "p1", "active": false}, "outcome": null}

fhir update <base_url> <resource_type> <id> <resource_json> <json_params>


Description

    Update with parameters: if_match (the version read, ex: W/"3": the server refuses if it changed), prefer, authentication and options of the page

Parameters

    base_url:   The base URL of the FHIR server, ex: https://server/fhir (https required, http only on localhost) - String - required
    resource_type:   The name of the resource, ex: Patient - String - required
    id:   The id of the resource: 1 to 64 letters, digits, - or . - String - required
    resource_json:   The resource as JSON - String - required
    json_params:   The parameters as a JSON object - String - required
admin
fhir update "http://127.0.0.1:22580/fhir" "Patient" "p1" "{\"resourceType\": \"Patient\", \"id\": \"p1\", \"active\": false}" "{\"if_match\": \"W/\\"3\\"\"}"
mentdb
{"status": 200, "location": "http://127.0.0.1:22580/fhir/Patient/p1/_history/4", "etag": "W/\"4\"", "id": "p1", "version_id": "4", "resource": {"resourceType": "Patient", "id": "p1", "active": false}, "outcome": null}

fhir delete <base_url> <resource_type> <id>


Description

    Delete a resource: the same result as fhir create

Parameters

    base_url:   The base URL of the FHIR server, ex: https://server/fhir (https required, http only on localhost) - String - required
    resource_type:   The name of the resource, ex: Patient - String - required
    id:   The id of the resource: 1 to 64 letters, digits, - or . - String - required
admin
fhir delete "http://127.0.0.1:22580/fhir" "Patient" "p1"
mentdb
{"status": 200, "location": null, "etag": null, "id": null, "version_id": null, "resource": null, "outcome": {"resourceType": "OperationOutcome", "issue": [{"severity": "information", "code": "informational", "diagnostics": "Deleted"}]}}

fhir delete <base_url> <resource_type> <id> <json_params>


Description

    Delete with parameters: if_match, authentication and options of the page

Parameters

    base_url:   The base URL of the FHIR server, ex: https://server/fhir (https required, http only on localhost) - String - required
    resource_type:   The name of the resource, ex: Patient - String - required
    id:   The id of the resource: 1 to 64 letters, digits, - or . - String - required
    json_params:   The parameters as a JSON object - String - required
admin
fhir delete "http://127.0.0.1:22580/fhir" "Patient" "p2" "{\"timeout_ms\": 5000}"
mentdb
{"status": 204, "location": null, "etag": null, "id": null, "version_id": null, "resource": null, "outcome": null}

fhir bundle_entries <bundle_json>


Description

    Read the entries of a Bundle as rows: index, full_url, resource_type, id, search_mode, search_score, request_method, request_url, response_status, resource. Offline

Parameters

    bundle_json:   The Bundle as JSON - String - required
admin
fhir bundle_entries "{\"resourceType\": \"Bundle\", \"type\": \"searchset\", \"total\": 2, \"entry\": [{\"fullUrl\": \"https://fhir.example.org/fhir/Patient/p1\", \"resource\": {\"resourceType\": \"Patient\", \"id\": \"p1\"}, \"search\": {\"mode\": \"match\", \"score\": 1.0}}, {\"fullUrl\": \"https://fhir.example.org/fhir/Organization/o1\", \"resource\": {\"resourceType\": \"Organization\", \"id\": \"o1\"}, \"search\": {\"mode\": \"include\"}}]}"
mentdb
[{"index": 0, "full_url": "https://fhir.example.org/fhir/Patient/p1", "resource_type": "Patient", "id": "p1", "search_mode": "match", "search_score": 1.0, "request_method": null, "request_url": null, "response_status": null, "resource": {"resourceType": "Patient", "id": "p1"}}, {"index": 1, "full_url": "https://fhir.example.org/fhir/Organization/o1", "resource_type": "Organization", "id": "o1", "search_mode": "include", "search_score": null, "request_method": null, "request_url": null, "response_status": null, "resource": {"resourceType": "Organization", "id": "o1"}}]

fhir get_value <resource_json> <path>


Description

    Read a value with a small FHIRPath-like subset, offline: names separated by dots, [n] from 0 (unlike the HL7 paths), where(prop='text') with a simple or dotted property, first(), last(). The path may start with the resource type. Lists are flattened as in FHIRPath: no value gives null, one value gives this value, several give a JSON list. Anything else is refused: this is not a FHIRPath engine, and the extensions of primitive values (_birthDate) are not read

Parameters

    resource_json:   The resource as JSON - String - required
    path:   The path, ex: name[0].family - String - required
admin
fhir get_value "{\"resourceType\": \"Patient\", \"id\": \"p1\", \"meta\": {\"lastUpdated\": \"2026-10-01T08:00:00+04:00\"}, \"identifier\": [{\"system\": \"urn:example:ssn\", \"value\": \"000-00-0000\"}, {\"system\": \"urn:example:mrn\", \"value\": \"00900001\", \"type\": {\"coding\": [{\"code\": \"MR\"}]}}], \"active\": true, \"name\": [{\"use\": \"nickname\", \"family\": \"Ali\"}, {\"use\": \"official\", \"family\": \"Testpatient\", \"given\": [\"Alice\", \"Marie\"]}], \"telecom\": [{\"system\": \"phone\", \"value\": \"+262555010\"}, {\"system\": \"email\", \"value\": \"alice@example.org\"}], \"gender\": \"female\", \"birthDate\": \"1980-01-02\", \"address\": [{\"use\": \"home\", \"line\": [\"1 Fiction St\"], \"city\": \"Fakeville\", \"postalCode\": \"97400\", \"country\": \"FR\"}]}" "name[0].family"
mentdb
Ali
By filter: an identifier keeps its zeros
admin
fhir get_value "{\"resourceType\": \"Patient\", \"id\": \"p1\", \"meta\": {\"lastUpdated\": \"2026-10-01T08:00:00+04:00\"}, \"identifier\": [{\"system\": \"urn:example:ssn\", \"value\": \"000-00-0000\"}, {\"system\": \"urn:example:mrn\", \"value\": \"00900001\", \"type\": {\"coding\": [{\"code\": \"MR\"}]}}], \"active\": true, \"name\": [{\"use\": \"nickname\", \"family\": \"Ali\"}, {\"use\": \"official\", \"family\": \"Testpatient\", \"given\": [\"Alice\", \"Marie\"]}], \"telecom\": [{\"system\": \"phone\", \"value\": \"+262555010\"}, {\"system\": \"email\", \"value\": \"alice@example.org\"}], \"gender\": \"female\", \"birthDate\": \"1980-01-02\", \"address\": [{\"use\": \"home\", \"line\": [\"1 Fiction St\"], \"city\": \"Fakeville\", \"postalCode\": \"97400\", \"country\": \"FR\"}]}" "identifier.where(system='urn:example:mrn').value"
mentdb
00900001
On a nested property
admin
fhir get_value "{\"resourceType\": \"Patient\", \"id\": \"p1\", \"meta\": {\"lastUpdated\": \"2026-10-01T08:00:00+04:00\"}, \"identifier\": [{\"system\": \"urn:example:ssn\", \"value\": \"000-00-0000\"}, {\"system\": \"urn:example:mrn\", \"value\": \"00900001\", \"type\": {\"coding\": [{\"code\": \"MR\"}]}}], \"active\": true, \"name\": [{\"use\": \"nickname\", \"family\": \"Ali\"}, {\"use\": \"official\", \"family\": \"Testpatient\", \"given\": [\"Alice\", \"Marie\"]}], \"telecom\": [{\"system\": \"phone\", \"value\": \"+262555010\"}, {\"system\": \"email\", \"value\": \"alice@example.org\"}], \"gender\": \"female\", \"birthDate\": \"1980-01-02\", \"address\": [{\"use\": \"home\", \"line\": [\"1 Fiction St\"], \"city\": \"Fakeville\", \"postalCode\": \"97400\", \"country\": \"FR\"}]}" "Patient.identifier.where(type.coding.code='MR').value"
mentdb
00900001
Several values give a list
admin
fhir get_value "{\"resourceType\": \"Patient\", \"id\": \"p1\", \"meta\": {\"lastUpdated\": \"2026-10-01T08:00:00+04:00\"}, \"identifier\": [{\"system\": \"urn:example:ssn\", \"value\": \"000-00-0000\"}, {\"system\": \"urn:example:mrn\", \"value\": \"00900001\", \"type\": {\"coding\": [{\"code\": \"MR\"}]}}], \"active\": true, \"name\": [{\"use\": \"nickname\", \"family\": \"Ali\"}, {\"use\": \"official\", \"family\": \"Testpatient\", \"given\": [\"Alice\", \"Marie\"]}], \"telecom\": [{\"system\": \"phone\", \"value\": \"+262555010\"}, {\"system\": \"email\", \"value\": \"alice@example.org\"}], \"gender\": \"female\", \"birthDate\": \"1980-01-02\", \"address\": [{\"use\": \"home\", \"line\": [\"1 Fiction St\"], \"city\": \"Fakeville\", \"postalCode\": \"97400\", \"country\": \"FR\"}]}" "name.family"
mentdb
["Ali", "Testpatient"]
No value
admin
fhir get_value "{\"resourceType\": \"Patient\", \"id\": \"p1\", \"meta\": {\"lastUpdated\": \"2026-10-01T08:00:00+04:00\"}, \"identifier\": [{\"system\": \"urn:example:ssn\", \"value\": \"000-00-0000\"}, {\"system\": \"urn:example:mrn\", \"value\": \"00900001\", \"type\": {\"coding\": [{\"code\": \"MR\"}]}}], \"active\": true, \"name\": [{\"use\": \"nickname\", \"family\": \"Ali\"}, {\"use\": \"official\", \"family\": \"Testpatient\", \"given\": [\"Alice\", \"Marie\"]}], \"telecom\": [{\"system\": \"phone\", \"value\": \"+262555010\"}, {\"system\": \"email\", \"value\": \"alice@example.org\"}], \"gender\": \"female\", \"birthDate\": \"1980-01-02\", \"address\": [{\"use\": \"home\", \"line\": [\"1 Fiction St\"], \"city\": \"Fakeville\", \"postalCode\": \"97400\", \"country\": \"FR\"}]}" "name[5].family"
mentdb
null

fhir check <resource_json>


Description

    Structural checks only, offline: resourceType present and well formed, id format, date and instant formats (on the usual property names), reference format, no empty string, object or array, no null, no duplicate property. It is NOT a validation against the StructureDefinitions or profiles: a resource can pass and still be refused by a server. The issues give a path and a message, never the value (1000 issues at most)

Parameters

    resource_json:   The resource as JSON - String - required
admin
fhir check "{\"resourceType\": \"Patient\", \"id\": \"p1\", \"meta\": {\"lastUpdated\": \"2026-10-01T08:00:00+04:00\"}, \"identifier\": [{\"system\": \"urn:example:ssn\", \"value\": \"000-00-0000\"}, {\"system\": \"urn:example:mrn\", \"value\": \"00900001\", \"type\": {\"coding\": [{\"code\": \"MR\"}]}}], \"active\": true, \"name\": [{\"use\": \"nickname\", \"family\": \"Ali\"}, {\"use\": \"official\", \"family\": \"Testpatient\", \"given\": [\"Alice\", \"Marie\"]}], \"telecom\": [{\"system\": \"phone\", \"value\": \"+262555010\"}, {\"system\": \"email\", \"value\": \"alice@example.org\"}], \"gender\": \"female\", \"birthDate\": \"1980-01-02\", \"address\": [{\"use\": \"home\", \"line\": [\"1 Fiction St\"], \"city\": \"Fakeville\", \"postalCode\": \"97400\", \"country\": \"FR\"}]}"
mentdb
{"ok": true, "resource_type": "Patient", "errors": 0, "warnings": 0, "issues": [], "scope": "structural checks only: this is NOT a validation against the FHIR StructureDefinitions or profiles"}
Several problems
admin
fhir check "{\"resourceType\": \"Patient\", \"id\": \"not_valid_id\", \"birthDate\": \"02/01/1980\", \"name\": [], \"managingOrganization\": {\"reference\": \"not a reference\"}}"
mentdb
{"ok": false, "resource_type": "Patient", "errors": 4, "warnings": 0, "issues": [{"severity": "error", "path": "(root)", "message": "id must be 1 to 64 letters, digits, - or ."}, {"severity": "error", "path": "birthDate", "message": "the date format is not YYYY, YYYY-MM, YYYY-MM-DD or YYYY-MM-DDThh:mm:ss+zz:zz, or the date does not exist"}, {"severity": "error", "path": "name", "message": "an empty array is not allowed"}, {"severity": "error", "path": "managingOrganization.reference", "message": "the reference format is not Type/id, Type/id/_history/version, an absolute URL, #fragment or urn:uuid / urn:oid"}], "scope": "structural checks only: this is NOT a validation against the FHIR StructureDefinitions or profiles"}

fhir patient_to_row <resource_json>


Description

    A Patient as one flat row, offline: id, active, last_updated, identifier_system and identifier_value (type MR, else official, else usual, else the first), family, given, prefix, suffix, name_text (name official, else usual, else the first), gender, birth_date, deceased, phone, email, address_line, city, state, postal_code, country (address home, else the first), marital_status, language, general_practitioner, managing_organization. The other values of lists are not in the row

Parameters

    resource_json:   The resource as JSON - String - required
admin
fhir patient_to_row "{\"resourceType\": \"Patient\", \"id\": \"p1\", \"meta\": {\"lastUpdated\": \"2026-10-01T08:00:00+04:00\"}, \"identifier\": [{\"system\": \"urn:example:ssn\", \"value\": \"000-00-0000\"}, {\"system\": \"urn:example:mrn\", \"value\": \"00900001\", \"type\": {\"coding\": [{\"code\": \"MR\"}]}}], \"active\": true, \"name\": [{\"use\": \"nickname\", \"family\": \"Ali\"}, {\"use\": \"official\", \"family\": \"Testpatient\", \"given\": [\"Alice\", \"Marie\"]}], \"telecom\": [{\"system\": \"phone\", \"value\": \"+262555010\"}, {\"system\": \"email\", \"value\": \"alice@example.org\"}], \"gender\": \"female\", \"birthDate\": \"1980-01-02\", \"address\": [{\"use\": \"home\", \"line\": [\"1 Fiction St\"], \"city\": \"Fakeville\", \"postalCode\": \"97400\", \"country\": \"FR\"}]}"
mentdb
{"id": "p1", "active": true, "last_updated": "2026-10-01T08:00:00+04:00", "identifier_system": "urn:example:mrn", "identifier_value": "00900001", "family": "Testpatient", "given": "Alice Marie", "prefix": null, "suffix": null, "name_text": null, "gender": "female", "birth_date": "1980-01-02", "deceased": null, "phone": "+262555010", "email": "alice@example.org", "address_line": "1 Fiction St", "city": "Fakeville", "state": null, "postal_code": "97400", "country": "FR", "marital_status": null, "language": null, "general_practitioner": null, "managing_organization": null}