Published at: 2025-10-30
Manufacturing/Healthcare Industry - Medical Information Query
Declaration
Data is updated annually. Sources are public online data and provided for reference only; accuracy and timeliness are not guaranteed.
Activation
Contact ShareCRM Support or your company’s account manager to enable the “Medical Information Lookup” service.
Admin Configuration
After activation, CRM administrators must perform initial configuration based on the company’s business requirements.
Step 1: Enable the feature
- In the Admin Console, under Business Rule Management, a new menu item “Medical Information Settings” will appear. Turn on the switch.
- Select the applicable Record Type that represents “Hospital” data. The Medical Information Lookup service applies only when creating records of this Record Type (this feature is currently mutually exclusive with the business registration lookup — choose one). Creating non-hospital records such as Distributor or medical examination centers continues to use the original business registration lookup.
- Choose the method for filling back data.
Click Save after completing the settings.
picture coming soon:
Step 2: Configure field mapping rules for data population
- Menu path: Admin Console → Business Rule Settings → Object Mapping Rules
Administrators define which hospital fields map to which Account fields. The system provides a default mapping, but it cannot know your company’s custom fields, so administrators must adjust mappings to match actual field usage.
Because creating a Hospital can also automatically bulk-create its Departments, you must also configure which Department fields map to which Account fields.
Special attention:
Because Departments are created in bulk automatically, ensure required fields for the Department Record Type are included in the mapping; otherwise validation will fail and creation will not succeed!
Administrator configuration is now complete. Note that changes to Account fields may affect your mappings.
picture coming soon:
picture coming soon:
picture coming soon:
Step 3: Configure operation permissions
If your organization does not require the ability to save a Hospital and simultaneously bulk-create its Departments when creating an Account, you can disable the “Save and New Department” button at Admin Console → Preset Object Management → Account → Buttons.
If you need this capability, grant the operation permission to the appropriate Roles.
picture coming soon:
End Users
Use case 1: Create or edit a Hospital by searching the medical database
- When creating or editing, enter a name keyword to match standard hospitals in the medical database. After selecting a match, the medical badge (“medical”) will highlight.
picture coming soon:
If automatic population is configured, the system fills fields according to the mapping rules. You can also manually populate fields by clicking the “Populate” action on the medical details page.
picture coming soon:
Accounts populated from the medical database will display the medical badge on the Account detail page. Click the badge to open the hospital details page.
picture coming soon:
Note: To display the Account hierarchy as shown in the screenshot, confirm your organization has enabled the Products feature “Account Module — Account Hierarchy Relationship.”
Click a Department name to open the Department detail page and view Department details and its Doctors. (Currently bulk-creation of Doctors is not supported; you can only view doctor information on the Department detail page.)
picture coming soon:
If your Role has permission for “Save and New Department,” you can bulk-create Departments under that Hospital.
Use case 2: Save and bulk-create Departments when creating a Hospital
When creating a Hospital Account, click “Save and New Department” and select Departments to create them in bulk.
The system will automatically link each Department to the Hospital using the Parent Account lookup field (suitable for organizations that manage Hospital and Department data via Account self-relationships).
Accounts and Departments created via the medical database will be marked with the medicalRegister value set to “Yes.” This is a preset field; add it to detail layouts and lists as needed.
(Departments previously created are highlighted in green.)
picture coming soon:
picture coming soon:
Use case 3: For existing Hospital Accounts, bulk-create Departments
From the Account detail page, click the medical badge to enter the hospital details. The Department list provides a “Bulk Create Departments” action.
picture coming soon:
Special note about Department names:
If you want generated Department names to concatenate as “HospitalName + DepartmentName,” implement this via an APL post-action on the Account Create operation.
Field Reference
Example Hospital fields:
picture coming soon:
Department and Doctor fields:
picture coming soon:
Daily Query Limits
Every action that queries the medical database consumes one query, including searching in the input box, clicking the medical badge, clicking a Department, and bulk-creating Departments.
Daily query limits per user: - Hospital: 2,000 queries/day - Department: 5,000 queries/day - Doctor: 5,000 queries/day
Bulk Clean / Initialize Hospital Data via Medical Database
- First, enable the “Bulk Medical Data Add/Update Function Package” resource extension. This resource pack can be enabled independently and does not depend on the Medical Information Lookup application.
- Call the medical provider API from within your function for data cleansing.
- In the function, specify the target object, typically Account, or a custom object for cleaned data.
- You may purchase up to five function resource packages. Consumption rules: each query of a Hospital or Department counts as one query. For example, querying 1 Hospital and its 10 Departments counts as 11 queries.
Data Cleansing (Update Hospital Data)
Request
Function path: Fx.hospital.updateHospital()
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| objectApiName | String | Yes | Target object API name |
| objectIds | List | Yes | List of record IDs |
| mappings | Map | Yes | Mapping from hospital fields to Account fields |
| isUpdateNull | Boolean | Yes | Whether to update when the hospital field is null (i.e., overwrite with null) |
| medicalRegister | String | Yes | medicalRegister field API name |
| levelMapping | Map | No | Hospital level mapping |
Response
A list of record IDs (List)
Groovy example
/** * @author zsl * @codeName Medical Master Data Function * @description Example * @createTime 2023-04-20 */
/** Hospital level meanings: 0: No level 1: Level 1 2: Level 1A 3: Level 1B 4: Level 1C 5: Level 2 6: Level 2A 7: Level 2B 8: Level 2C 9: Level 3 10: Level 3A 11: Level 3B 12: Level 3C */ // Hospital level mapping (medical DB level -> CRM single-select option value). Omit if not needed. Map levelMappings = [ “0”:”NX0f3im1Q”, “1”:”zbgZAGOF0”, “2”:”BeO329j4c”, “3”:”W3k2ckIcc”, “4”:”pLpRx6sc5”, “5”:”zmGAx3uvr”, “6”:”CrgOr0azE”, “7”:”u4vWS9Sit”, “8”:”f2E34oH61”, “9”:”3sqq01lRy”, “10”:”40vHB1xfa”, “11”:”4kzl2BbpE”, “12”:”sqamVsQ00” ] // List of data IDs to clean (max 100) List dataIdList = [“642645d0bca58400013719a3”] /** Medical DB fields: name: hospital name alias: alias profit_attribute: profit attribute level: hospital level province: province city: city district: district address: address latitude_and_longitude: coordinates contact_phone_number: contact number official_website: website dean: dean bed_num: number of beds daily_outpatient_num: daily outpatient volume introduction: introduction type: hospital type credit_code: unified social credit code */ // Medical DB field -> CRM object field mapping Map mappings = [“name”:”url”] // Required parameters: objectApiName, isUpdateNull, medicalRegister, mappings APIResult result = Fx.hospital.updateHospital(“AccountObj”, dataIdList, mappings, true, “is_hospital_register”, levelMappings)
log.info(result)
Initialize Hospitals
Request
Function path: Fx.hospital.initHospital()
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| hospitalObjectApiName | String | Yes | Hospital object API name |
| recordType | String | Yes | Record Type |
| elevel | String | No | Level |
| province | String | No | Province |
| city | String | No | City |
| district | String | No | District |
| classification | String | No | Department classification |
| mappings | Map | Yes | Mapping from medical DB fields to object fields |
| medicalRegister | String | Yes | medicalRegister field API name |
| levelMapping | Map | No | Hospital level mapping |
Response
Initialized count (int)
Groovy example
/** * @author zsl * @codeName Initialize Hospitals * @description Example * @createTime 2023-04-20 */
/** Medical DB fields: name: hospital name alias: alias profit_attribute: profit attribute level: hospital level province: province city: city district: district address: address latitude_and_longitude: coordinates contact_phone_number: contact number official_website: website dean: dean bed_num: number of beds daily_outpatient_num: daily outpatient volume introduction: introduction type: hospital type credit_code: unified social credit code */ // Medical DB field -> CRM object field mapping Map mappings = [ “level”:”field_Zi8Pw__c”, “latitude_and_longitude”:”location”, “district”:”district”, “city”:”city”, “province”:”province”, “cocuntry”:”country”, “contact_phone_number”:”tel”, “official_website”:”url”, “address”:”address”, “name”:”name” ] // Hospital level mapping (medical DB level -> CRM single-select option value). Omit if not needed. Map levelMappings = [ “0”:”NX0f3im1Q”, “1”:”zbgZAGOF0”, “2”:”BeO329j4c”, “3”:”W3k2ckIcc”, “4”:”pLpRx6sc5”, “5”:”zmGAx3uvr”, “6”:”CrgOr0azE”, “7”:”u4vWS9Sit”, “8”:”f2E34oH61”, “9”:”3sqq01lRy”, “10”:”40vHB1xfa”, “11”:”4kzl2BbpE”, “12”:”4kzl2BbpE” ] // Required parameters: hospitalObjectApiName, recordType, medicalRegister, mappings APIResult result = Fx.hospital.initHospital(“AccountObj”, “record_PRkkc__c”, “4”, “北京市”, null, null, null, mappings, “is_hospital_register”, levelMappings) log.info(result)
Initialize Departments
Request
Function path: Fx.hospital.initDepartment()
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| hospitalObjectApiName | String | Yes | Hospital object API name |
| departmentObjectApiName | String | Yes | Department object API name |
| recordType | String | Yes | Record Type |
| objectId | String | Yes | Hospital record ID |
| classification | String | No | Department classification |
| mappings | Map | Yes | Mapping from medical DB fields to object fields |
| medicalRegister | String | Yes | medicalRegister field API name |
| classificationMapping | Map | No | Department classification mapping |
| parentApiName | String | Yes | Lookup field API name linking Department to Hospital |
Groovy example
/** * @author zsl * @codeName Initialize Departments * @description Example * @createTime 2023-04-20 */ /** Medical DB Department fields: name: department name director: department director classification: classification introduction: department introduction */ // Medical DB department field -> CRM object field mapping Map mappings = [ “name”:”name”, “classification”:”field_56YfM__c” ] /** Department classification meanings: 1: Internal Medicine 2: Surgery 3: Orthopedics 4: Obstetrics & Gynecology 5: Andrology 6: Pediatrics 7: Otorhinolaryngology & Head-Neck Surgery 8: Ophthalmology 9: Stomatology 10: Oncology 11: Dermatology & Venereology 12: Traditional Chinese Medicine 13: Infectious Diseases 14: Psychiatry 15: Anesthesiology 16: Medical Imaging 17: Other */ // Department classification mapping (key: medical DB classification, value: CRM classification) Map classificationMappings = [ “0”:”0”, “1”:”1”, “2”:”2”, “3”:”3”, “4”:”4”, “5”:”5”, “6”:”6”, “7”:”7”, “8”:”8”, “9”:”9”, “10”:”10”, “11”:”11”, “13”:”13”, “14”:”14”, “15”:”15”, “16”:”16”, “17”:”17”, “12”:”12” ] // Required parameters: hospitalObjectApiName, departmentObjectApiName, recordType, objectId, mappings, medicalRegister, parentApiName APIResult result = Fx.hospital.initDepartment(“AccountObj”, “AccountObj”, “record_PRkkc__c”, “6440f25a8d392e00011ffbfb”, null, mappings, “is_hospital_register”, classificationMappings, “parent_account_id”) log.info(result)