Consider a scenario where we are going to build small Hospital Admission System in Dynamics Ax 2012. This Add-on is based on small database design based on
We divide this task into two posts
For this post, we are cover following points to develop this small add-on
- Ax Project
- Patient, Diagnostic and admission table.
- Simple list page for diagnostic table.
- Entry form for Patient table (Detail form).
- Parent Master detail form based on Patient ,Diagnostic table and patient.
- List page for Patient table.
- Integrate Patient List page with Patient Detail form.
AX Project:
AX Project for collecting Ax artifacts in single location.
When we create any Ax object they have to create under certain node. For example tables, forms, Classes, menu all stored in their respected node.
In Dynamics Ax we can create a Project which is not more the logical grouping of all Ax artifacts.
In these project, we create object groups and then placed our required object either drag and drop from AOT or create them here.
Advantages of Projects are
- Logical grouping, it’s easier to locate required artifacts one location.
- When we export project as Xpo, All objects are exported as single XPO.
- We can export whole project into model, all object in project moved from one model to other model in single steps.
Lets make a new project
From top menu Click on View=> tools=> Project
Following Screen will open
Right click on Shared folder and create a Project and renamed it to HospitalManagementSystem.
Click on Project and open it. Right click on it new => Group to create new groups
For example we create Form group and set it Name and Project Group type to forms
Now Project is look like
Similarly create other groups.
Table structure design.
So our table structure look like
Diagnostic table
Column | Extended data Type | Primitive Data Type |
DiagNo | DiagnosticNumber | Str10 |
Desc | Description | |
Cost | AmountCur | Real |
Patient table
Column | Extended Data Type | |
PatNo | PatientNumber | Str 20 |
Fname | Name | |
LName | Name | |
BirthDate | BirthDate | |
Address | T_Address | Str 20 |
City | T_City | Str20 |
State | T_State | Str20 |
Zip | T_Zip | Str20 |
Gender | T_Gender |
AdmissionsTable
Column | Extended Data Type | Primitive Data Type | Foreign Key |
AdmitNo | AdmissionNumber | Str20 | |
PatNO | Patient Number | Patient table | |
Diag_code | Diagnosticnumber | Diagnostic table | |
Adminationdate | FromDate | date | |
DischargeDate | ToDate | date | |
CoPay | Notes | Notes |
First we create a extended data type required in three tables.
First one is DiagonisticNumber extended Data Type
Rename it and set its name as “DiagnosticNumber” and its string set its size to 10
Similarly create all extended data type
Rest of we use out of the box extended Data Type
When you save any Extended Data Type, Ax ask for Synchronize database cancel it when all extended data Types created let it complete
In current example only gender is enum type, we create new base enum T_Gender instead of using out of box Gender enum.
Create a new Enum and name it “T_Gender” t stands for training.
Right click on it and create a new element
Set its name and label
Base Create one more element and it will look like
Now create a click on tables group and right click and create a new table
Rename it to “DiagnosticTable”.
Now create a new field with Name “DiagNo” of string type and set its extended data type to “DiagnosticNumber”
Similarly create all other fields in table
Now expand field Groups node in Table and Create a new Field group with Name “OverView”.
Drag all fields in it.
Now want to make the Diagonistic and unique and make it primary key. For this right click and create unique index on it
Rename it to DiagNoIx and set its AllowDuplicate Property to No and Alternate key to Yes
Now drag DiagNo from fields node to DiagosticIdx.
Now right click on DiagnosticTable and set following Properties with newly created Index
Perform same steps to create PaitentTable, create Index on “PatNo” similar way.
Create a new field group with overview and arrange field in a way that you want to see them in form
Create unique index on PatientNumber
Similarly create AdmissionTable,
Now right click on Relation node in AdmissionTable and create a new relation and rename it to “PatientRelation” and sets its table property to “PatientTable”
Now Right click on relation click on new =>ForeignKey=>Single field AlternateKey based
A new field added against relation, rename it to PatientNumber
Similarly create another key based DiagnosticTable
Save and compile all table and synchronize each table.
Form development will be on next post