Closed joaoluis-pdm closed 2 years ago
The "My Patients" backoffice view (from the Clinical Site app) will not be implemented:
because that would imply that the identity of the patient is established across multiple-trials, and contradicts the "de-identified patient" requirement.
So far each patient application has only a name and email (and possibly phone), and there is no patient identity concept on the database.
ctr-patient/patient-ssapp changes:
Controllers ClinicalTrialAns60InfoController, MatchInfo20Controller, MatchRequestNew60InfoController: When there is a match enable (display) the "CONTACT CLINICAL SITE" button, and handle it.
The button handled should display a modal asking for:
Name: ... filled with the default participant name
Email: ... filled with the default participant email
I authorise the clinical site to use this data (along with my pre-screener answers) for trial contact purposes.
CONTACT
When the "CONTACT" button is pressed, it must call the middleware /ctr-match-service/apply using a new method in ctr-patient/ctr-dsu-wizard/services/MatchRequestService.js "apply(data, callback(err))". See REST parameters for data contents.
(It may not be a modal, but at this time seems that a model might be easier to write).
ctr-patient/ctr-dsu-wizard/middleware changes:
Associate a new localhost endpoint /ctr-match-service/apply to call REST /borest/ctrms/apply
ctr-backoffice-backend changes:
POST /borest/ctrms/apply - create a new Application record. The body must contain:
{
name: "string",
email: "string",
matchRequest: "const keySSI string",
clinicalSite: "UUID string",
clinicalTrial: "UUID string"
}
GET /borest/ctrial/application?clinicalTrial=UUID - return a paged list of applications for this trial. Use the same paged parameters as in GET /borest/ctrial/clinicaltrial
@pccosta-pdm the name is "undefined undefined" (also the name and email are supposed to be editable, but for the moment, we may consider leaving this from the target for next tuesday morning).
@pccosta-pdm the implementation at MatchInfo20Controller.js seems broken.
(If it is intentionally broken, please leave the "(DOES NOT WORK)" comment on the button).
@pccosta-pdm another error candidate (might not be an error)
contact-clinical-site-button.patientIdentity newValue= error= SyntaxError: Unexpected end of JSON input
at JSON.parse (<anonymous>)
at ContactClinicalSiteButton.watchPatientIdentity (contact-clinical-site-button.entry.js:31)
at index-7c719aff.js:1839
at Array.map (<anonymous>)
...
@joaoluis-pdm, issues fixed.
on
contact-clinical-site-button.patientIdentity newValue= error= SyntaxError: Unexpected end of JSON input at JSON.parse (
) at ContactClinicalSiteButton.watchPatientIdentity (contact-clinical-site-button.entry.js:31) at index-7c719aff.js:1839 at Array.map ( ) ...
it's not a "error" (it's because on the application initialization the initial value is "undefined"), however I put a condition to show the message when the property is set intentionally.
Seems all fixed!
@pccosta-pdm The "CONTACT CLINICAL SITE" seems to allow contact even if there is no match. That seems a defect.
... as the spec says
When there is a match enable (display) the "CONTACT CLINICAL SITE" button, and handle it.
I think that this affects mostly ClinicalTrialAns60InfoController but is also related to bug #51
@pccosta-pdm the check for double-contact should be done using an internal database that also appears on the dashboard:
Meeting 2021-09-28:
"My Application" -> "My Referrals"
Sponsors cannot see patient application details.
@pccosta-pdm commit d90a0c9 seems to work. Review complete. Thanx!
(Low-priprity) @pccosta-pdm can you please add UI to sort by columns on component https://github.com/PharmaLedger-IMI/ctr-workspace/tree/master/ctr-backoffice-frontend/src/app/application ?
Note that the same component is used on 2 pages at least, with a different number of columns displayed ( /application-clinicalsite ApplicationComponent and /clinicaltrial-clinicalsite ClinicalTrialDetailClinicalSiteComponent )
Is needed, change/extend https://github.com/PharmaLedger-IMI/ctr-workspace/blob/master/ctr-backoffice-backend/src/ctrial/application.repository.ts and applicationquery.validator.ts
Also, @pccosta-pdm , please remove the writing of the "Application" to the blockchain.
@joaoluis-pdm done!
Multi-site changes handled within #14. Available on v0.10.3
Meeting 2021-09-28 CTR Weekly: Ask for phone number.
Patient phone number must be filled manually, as it is not part of the patient wallet information.
From the weekly business meetings, there is a request to add a "status" attribute
Adding a "status" attribute will raise the need to define a workflow (what are the possible statuses, and what can be done at each status).
To avoid that, the tech team simply counter-proposes the export of this data to CSV, and let the application processing workflow be external to the software.
Using https://www.npmjs.com/package/mat-table-exporter
This exports the mat-table as seen on screen - for many applicants that will usually involve expanding the number of items displayed.
Meeting 2022-01-04
On the Clinical Site App, rename wording of "Application" -> to "Referrals".
Meeting 2022-01-04
The Export-to-CSV needs to export the whole table, not only the visible results, so b284c85 should do that (instead of depending on https://www.npmjs.com/package/mat-table-exporter )
(This is an extension of issue #5 )
Implement the feature for patients to contact a clinical site when viewing a match result (with a positive match) or answering a pre-screener for a single trial that matched.
Email from: 14th September 2021 17:54
Meeting 2021-09-21: