MDMUI is a user-facing application designed to make it easy for administrators to accept or refute links created by MDM (Master Data Management). It includes the ability to search for a particular resource, view a list of all potential matches and potential duplicates, and assign tasks to users for workload management.
MDMUI currently supports FHIR R4 endpoints only.
NOTE: if you are using a reverse / web proxy, please see step 10 at the very bottom (last step).
MDM UI will create FHIR resources for its own workflow management, these will be tagged with the tag "https://smilecdr.com/fhir/ns/mdm/ui/NamingSystem/tags|MDM_UI"
.
It will create new resources in the following scenarios:
MDM UI depends on having certain components already configured in Smile. Please follow these steps to configure a fresh Smile install to work with MDMUI.
system|identifier
SearchParameter
resources will not be seeded and are not required as MDMUI will be using AuditEvent
resources.{
"resourceType": "Bundle",
"type": "transaction",
"entry": [
{
"fullUrl": "SearchParameter/Task-relevant-history",
"resource": {
"resourceType": "SearchParameter",
"id": "Task-relevant-history",
"url": "https://smilecdr.com/fhir/ns/mdm/ui/SearchParameter/Task-relevant-history",
"name": "Task relevant history",
"status": "active",
"description": "Search by Provenance records relating to this Task.",
"code": "relevant-history",
"base": [
"Task"
],
"type": "reference",
"expression": "Task.relevantHistory",
"target": [
"Provenance"
]
},
"request": {
"method": "PUT",
"url": "SearchParameter?base=Task&code=relevant-history&status=active"
}
},
{
"fullUrl": "SearchParameter/Task-restriction-recipient",
"resource": {
"resourceType": "SearchParameter",
"id": "Task-restriction-recipient",
"url": "https://smilecdr.com/fhir/ns/mdm/ui/SearchParameter/Task-restriction-recipient",
"name": "Task restriction recipient",
"status": "active",
"description": "Search by task restriction recipient reference.",
"code": "restriction-recipient",
"base": [
"Task"
],
"type": "reference",
"expression": "Task.restriction.recipient",
"target": [
"Patient",
"Practitioner",
"PractitionerRole",
"RelatedPerson",
"Group",
"Organization"
]
},
"request": {
"method": "PUT",
"url": "SearchParameter?base=Task&code=restriction-recipient&status=active"
}
},
{
"fullUrl": "SearchParameter/Task-owner-or-restriction-recipient",
"resource": {
"resourceType": "SearchParameter",
"id": "Task-owner-or-restriction-recipient",
"url": "https://smilecdr.com/fhir/ns/mdm/ui/SearchParameter/Task-owner-or-restriction-recipient",
"name": "Task owner or restriction recipient",
"status": "active",
"description": "Search by task owner or restriction recipient reference.",
"code": "owner-or-recipient",
"base": [
"Task"
],
"type": "reference",
"expression": "Task.owner | Task.restriction.recipient",
"target": [
"CareTeam",
"Device",
"Group",
"HealthcareService",
"Organization",
"Patient",
"Practitioner",
"PractitionerRole",
"RelatedPerson"
]
},
"request": {
"method": "PUT",
"url": "SearchParameter?base=Task&code=owner-or-recipient&status=active"
}
},
{
"fullUrl": "SearchParameter/Task-restriction-recipient-exists",
"resource": {
"resourceType": "SearchParameter",
"id": "Task-restriction-recipient-exists",
"url": "https://smilecdr.com/fhir/ns/mdm/ui/SearchParameter/Task-restriction-recipient-exists",
"name": "Task restriction recipient if exists",
"status": "active",
"description": "A server match on whether Task recipient exists, alternative to using the :missing operator.",
"code": "task-recipient-exists",
"base": [
"Task"
],
"type": "string",
"expression": "Task.restriction.recipient.exists()"
},
"request": {
"method": "PUT",
"url": "SearchParameter?base=Task&code=task-recipient-exists&status=active"
}
},
{
"fullUrl": "SearchParameter/Task-mdmui-identifier-system",
"resource": {
"resourceType": "SearchParameter",
"id": "Task-mdmui-identifier-system",
"url": "https://smilecdr.com/fhir/ns/StructureDefinition/Task-mdmui-identifier-system",
"name": "Task mdmui identifier system",
"status": "active",
"description": "Search by Task identifier using MDMUI system.",
"code": "task-mdmui-identifier-system",
"base": [
"Task"
],
"type": "string",
"expression": "Task.identifier.where(system='https://smilecdr.com/fhir/ns/mdm/ui/Task/identifier').value"
},
"request": {
"method": "PUT",
"url": "SearchParameter?base=Task&code=task-mdmui-identifier-system&status=active"
}
},
{
"fullUrl": "SearchParameter/Task-mdmui-identifier-system-unique",
"resource": {
"resourceType": "SearchParameter",
"id": "Task-mdmui-identifier-system-unique",
"extension": [
{
"url": "http://hapifhir.io/fhir/StructureDefinition/sp-unique",
"valueBoolean": true
}
],
"url": "https://smilecdr.com/fhir/ns/StructureDefinition/Task-mdmui-identifier-system-unique",
"name": "Task mdmui identifier system unique",
"status": "active",
"description": "Enforcing uniqueness on Task identifier using MDMUI system.",
"code": "task-mdmui-identifier-system-unique",
"base": [
"Task"
],
"type": "composite",
"expression": "Task.identifier.where(system='https://smilecdr.com/fhir/ns/mdm/ui/Task/identifier').value",
"component": [
{
"definition": "SearchParameter/Task-mdmui-identifier-system",
"expression": "Task"
}
]
},
"request": {
"method": "PUT",
"url": "SearchParameter?base=Task&code=task-mdmui-identifier-system-unique&status=active"
}
}
]
}
{
"resourceType": "Bundle",
"type": "transaction",
"entry": [
{
"fullUrl": "SearchParameter/Task-relevant-history",
"resource": {
"resourceType": "SearchParameter",
"id": "Task-relevant-history",
"url": "https://smilecdr.com/fhir/ns/mdm/ui/SearchParameter/Task-relevant-history",
"name": "Task relevant history",
"status": "active",
"code": "relevant-history",
"base": [
"Task"
],
"type": "reference",
"description": "Search by Provenance records relating to this Task.",
"expression": "Task.relevantHistory",
"target": [
"Provenance"
]
},
"request": {
"method": "PUT",
"url": "SearchParameter?base=Task&code=relevant-history&status=active"
}
},
{
"fullUrl": "SearchParameter/Task-restriction-recipient",
"resource": {
"resourceType": "SearchParameter",
"id": "Task-restriction-recipient",
"url": "https://smilecdr.com/fhir/ns/mdm/ui/SearchParameter/Task-restriction-recipient",
"name": "Task restriction recipient",
"status": "active",
"code": "restriction-recipient",
"base": [
"Task"
],
"type": "reference",
"description": "Search by task restriction recipient reference.",
"expression": "Task.restriction.recipient",
"target": [
"Patient",
"Practitioner",
"PractitionerRole",
"RelatedPerson",
"Group",
"Organization"
]
},
"request": {
"method": "PUT",
"url": "SearchParameter?base=Task&code=restriction-recipient&status=active"
}
},
{
"fullUrl": "SearchParameter/Task-owner-or-restriction-recipient",
"resource": {
"resourceType": "SearchParameter",
"id": "Task-owner-or-restriction-recipient",
"url": "https://smilecdr.com/fhir/ns/mdm/ui/SearchParameter/Task-owner-or-restriction-recipient",
"name": "Task owner or restriction recipient",
"status": "active",
"code": "owner-or-recipient",
"base": [
"Task"
],
"type": "reference",
"description": "Search by task owner or restriction recipient reference.",
"expression": "Task.owner | Task.restriction.recipient",
"target": [
"CareTeam",
"Device",
"Group",
"HealthcareService",
"Organization",
"Patient",
"Practitioner",
"PractitionerRole",
"RelatedPerson"
]
},
"request": {
"method": "PUT",
"url": "SearchParameter?base=Task&code=owner-or-recipient&status=active"
}
},
{
"fullUrl": "SearchParameter/Task-restriction-recipient-exists",
"resource": {
"resourceType": "SearchParameter",
"id": "Task-restriction-recipient-exists",
"url": "https://smilecdr.com/fhir/ns/mdm/ui/SearchParameter/Task-restriction-recipient-exists",
"name": "Task restriction recipient if exists",
"status": "active",
"code": "task-recipient-exists",
"base": [
"Task"
],
"type": "string",
"description": "A server match on whether Task recipient exists, alternative to using the :missing operator.",
"expression": "Task.restriction.recipient.exists()"
},
"request": {
"method": "PUT",
"url": "SearchParameter?base=Task&code=task-recipient-exists&status=active"
}
},
{
"fullUrl": "SearchParameter/Task-mdmui-identifier-system",
"resource": {
"resourceType": "SearchParameter",
"id": "Task-mdmui-identifier-system",
"url": "https://smilecdr.com/fhir/ns/StructureDefinition/Task-mdmui-identifier-system",
"name": "Task mdmui identifier system",
"status": "active",
"code": "task-mdmui-identifier-system",
"base": [
"Task"
],
"type": "string",
"description": "Search by Task identifier using MDMUI system.",
"expression": "Task.identifier.where(system='https://smilecdr.com/fhir/ns/mdm/ui/Task/identifier').value"
},
"request": {
"method": "PUT",
"url": "SearchParameter?base=Task&code=task-mdmui-identifier-system&status=active"
}
},
{
"fullUrl": "SearchParameter/Task-mdmui-identifier-system-unique",
"resource": {
"resourceType": "SearchParameter",
"id": "Task-mdmui-identifier-system-unique",
"extension": [
{
"url": "http://hapifhir.io/fhir/StructureDefinition/sp-unique",
"valueBoolean": true
}
],
"url": "https://smilecdr.com/fhir/ns/StructureDefinition/Task-mdmui-identifier-system-unique",
"name": "Task mdmui identifier system unique",
"status": "active",
"code": "task-mdmui-identifier-system-unique",
"base": [
"Task"
],
"type": "composite",
"description": "Enforcing uniqueness on Task identifier using MDMUI system.",
"expression": "Task.identifier.where(system='https://smilecdr.com/fhir/ns/mdm/ui/Task/identifier').value",
"component": [
{
"definition": {
"reference": "SearchParameter/Task-mdmui-identifier-system"
},
"expression": "Task"
}
]
},
"request": {
"method": "PUT",
"url": "SearchParameter?base=Task&code=task-mdmui-identifier-system-unique&status=active"
}
}
]
}