File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -53,6 +53,13 @@ const formProfileContent = [
5353 label : 'Sex' ,
5454 dataFieldKey : 'sex' ,
5555 } ,
56+ {
57+ streamId : 'profile-date-of-birth' ,
58+ eventType : 'date/iso-8601' ,
59+ type : 'date' ,
60+ label : 'Date of Birth' ,
61+ dataFieldKey : 'date-of-birth' ,
62+ } ,
5663 {
5764 streamId : 'family-children' ,
5865 eventType : 'count/generic' ,
Original file line number Diff line number Diff line change @@ -117,6 +117,16 @@ function dataFieldFromEvent (event) {
117117 value : event . content ,
118118 event : event
119119 } ;
120+ if ( dataField . type === 'date' ) {
121+ // convert the date to a Date object
122+ const date = new Date ( event . content ) ;
123+ if ( ! isNaN ( date ) ) {
124+ field . value = date . toISOString ( ) . split ( 'T' ) [ 0 ] ; // format YYYY-MM-DD
125+ } else {
126+ console . error ( '## Error parsing date' , event . content ) ;
127+ field . value = '' ;
128+ }
129+ }
120130 return field ;
121131}
122132
Original file line number Diff line number Diff line change @@ -66,6 +66,8 @@ async function updateFormContent(formKey) {
6666 fieldHTML += `<option value="${ option . value } " ${ selected } >${ option . label } </option>` ;
6767 }
6868 fieldHTML += `</select>` ;
69+ } else if ( fieldType === 'date' ) {
70+ fieldHTML += `<input type="date" id="${ fieldId } " value="${ fieldValue } " class="form-control"/>` ;
6971 }
7072 // Append the HTML to the form
7173 document . getElementById ( 'inputs-' + formKey ) . innerHTML += fieldHTML ;
@@ -81,8 +83,13 @@ async function submitForm(formKey) {
8183 for ( let i = 0 ; i < formData . length ; i ++ ) {
8284 const field = formData [ i ] ;
8385 const fieldId = field . id ;
84- const fieldValue = document . getElementById ( fieldId ) . value . trim ( ) ;
85- values [ field . id ] = fieldValue ; // Store the value in the values object
86+ const formField = document . getElementById ( fieldId ) ;
87+ // Store the value in the values object
88+ if ( field . type === 'date' ) {
89+ values [ field . id ] = formField . valueAsDate ;
90+ } else {
91+ values [ field . id ] = formField . value . trim ( ) ;
92+ }
8693 }
8794 await patientLib . handleFormSubmit ( formKey , values ) ;
8895} ;
Original file line number Diff line number Diff line change @@ -169,7 +169,18 @@ async function getFormProfileContent () {
169169 console . log ( '## getFormContent ' + i , e ) ;
170170 if ( e . events && e . events . length > 0 ) {
171171 const event = e . events [ 0 ] ;
172- field . value = event . content ;
172+ if ( field . type === 'date' && event . content != null ) {
173+ // convert the date to a Date object
174+ const date = new Date ( event . content ) ;
175+ if ( ! isNaN ( date ) ) {
176+ field . value = date . toISOString ( ) . split ( 'T' ) [ 0 ] ; // format YYYY-MM-DD
177+ } else {
178+ console . error ( '## Error parsing date' , event . content ) ;
179+ field . value = '' ;
180+ }
181+ } else {
182+ field . value = event . content ;
183+ }
173184 field . eventId = event . id ; // will allow t track if the event is to be updated
174185 }
175186 }
@@ -193,6 +204,12 @@ function parseValue (value, type) {
193204 if ( type === 'boolean' ) {
194205 return value === 'true' ;
195206 }
207+ if ( type === 'date' ) {
208+ if ( value instanceof Date && ! isNaN ( value ) ) {
209+ return value . toISOString ( ) ;
210+ }
211+ return value === '' ;
212+ }
196213 return value ;
197214}
198215
You can’t perform that action at this time.
0 commit comments