Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Abdm M3 #6487

Closed
wants to merge 34 commits into from
Closed

Abdm M3 #6487

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
399e33c
added create consent functionality
khavinshankar Aug 30, 2023
d4fd2d6
renamed patient_health_id to patient_abha
khavinshankar Aug 30, 2023
33666c6
added abdm tab in consultation dashboard
khavinshankar Aug 31, 2023
2e020bd
Merge branch 'develop' into abdm-m3
khavinshankar Sep 29, 2023
6cb1bfe
fix abdm consultation tab
khavinshankar Sep 29, 2023
11cb15e
show health information
khavinshankar Oct 2, 2023
ce2432f
ui improvements
khavinshankar Oct 2, 2023
e631138
added patient id verification in fetch abdm records form
khavinshankar Oct 16, 2023
08edcac
fixed phone number parsing issue while linking abha number
khavinshankar Oct 18, 2023
deea512
change proxy url
khavinshankar Oct 25, 2023
9aba833
show deny status in the consent request
khavinshankar Dec 4, 2023
b253950
upgraded hi-profiles package
khavinshankar Dec 6, 2023
9f171d6
added consent requests table for facilities in abdm
khavinshankar Dec 19, 2023
3d83d6d
consolidated multiple view artefact buttons into one
khavinshankar Dec 19, 2023
c7d3048
added consent granted on time in abdm facility records
khavinshankar Dec 20, 2023
fda359d
temp: use artefact 1's data
khavinshankar Dec 20, 2023
a874b9b
temp: update index
khavinshankar Jan 5, 2024
b888268
fixed consent status
khavinshankar Jan 8, 2024
b3d0f5a
Trigger Build.
khavinshankar Jan 17, 2024
971d819
Merge branch 'develop' of github.com:coronasafe/care_fe into abdm-m3
khavinshankar Jan 20, 2024
b040ea0
recreated package-lock.json (#7069)
khavinshankar Jan 20, 2024
f6e0923
show notification when health id registration fails
khavinshankar Jan 29, 2024
1fe1674
Merge branch 'develop' into abdm-m3
khavinshankar Jan 29, 2024
cfe5488
Merge branch 'develop' into abdm-m3
nihal467 Jan 29, 2024
5dccc81
Merge branch 'develop' into abdm-m3
khavinshankar Feb 1, 2024
76b436f
Merge branch 'develop' into abdm-m3
nihal467 Feb 6, 2024
cd94fa7
Update netlify.toml
khavinshankar Feb 7, 2024
ed138bd
Trigger Build
khavinshankar Feb 7, 2024
bfcc535
Merge branch 'abdm-m3' of github.com:coronasafe/care_fe into abdm-m3
khavinshankar Feb 7, 2024
fe3aadc
merge develop with abdm-m3
khavinshankar Feb 8, 2024
c85eb20
revert auto formatted styles
khavinshankar Feb 8, 2024
bbf35b4
fixed a typo in styles
khavinshankar Feb 8, 2024
e4efed7
updated the proxy
khavinshankar Feb 8, 2024
5c3c156
Merge branch 'abdm-m3' of github.com:coronasafe/care_fe into abdm-m3
khavinshankar Feb 8, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29,727 changes: 16,063 additions & 13,664 deletions package-lock.json

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@
"echarts-for-react": "^3.0.2",
"eslint-mdx": "^3.1.5",
"events": "^3.3.0",
"hi-profiles": "^1.0.6",
"i18next": "^23.2.7",
"i18next-browser-languagedetector": "^7.1.0",
"lodash-es": "^4.17.21",
Expand Down
21 changes: 21 additions & 0 deletions src/Common/constants.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -707,6 +707,7 @@ export const CONSULTATION_TABS: Array<OptionsType> = [
{ id: 10, text: "NUTRITION", desc: "Nutrition" },
{ id: 11, text: "PRESSURE_SORE", desc: "Pressure Sore" },
{ id: 12, text: "DIALYSIS", desc: "Dialysis" },
{ id: 14, text: "ABDM", desc: "ABDM Records" },
];

export const RHYTHM_CHOICES: Array<OptionsType> = [
Expand Down Expand Up @@ -1032,6 +1033,26 @@ export const XLSXAssetImportSchema = {
},
};

// ABDM
export const ABDM_CONSENT_PURPOSE = [
{ value: "CAREMGT", label: "Care Management" },
{ value: "BTG", label: "Break The Glass" },
{ value: "PUBHLTH", label: "Public Health" },
{ value: "HPAYMT", label: "Healthcare Payment" },
{ value: "DSRCH", label: "Disease Specific Healthcare Research" },
{ value: "PATRQT", label: "Self Requested" },
];

export const ABDM_HI_TYPE = [
{ value: "Prescription", label: "Prescription" },
{ value: "DiagnosticReport", label: "Diagnostic Report" },
{ value: "OPConsultation", label: "Op Consultation" },
{ value: "DischargeSummary", label: "Discharge Summary" },
{ value: "ImmunizationRecord", label: "Immunization Record" },
{ value: "HealthDocumentRecord", label: "Record Artifact" },
{ value: "WellnessRecord", label: "Wellness Record" },
];

export const USER_TYPES_MAP = {
Pharmacist: "Pharmacist",
Volunteer: "Volunteer",
Expand Down
166 changes: 166 additions & 0 deletions src/Components/ABDM/ABDMFacilityRecords.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,166 @@
import { Link } from "raviger";
import routes from "../../Redux/api";
import useQuery from "../../Utils/request/useQuery";
import { formatDateTime } from "../../Utils/utils";
import Loading from "../Common/Loading";
import Page from "../Common/components/Page";

interface IProps {
facilityId: string;
}

const TableHeads = [
"Patient",
"Status",
"Created On",
"Consent Granted On",
// "Requested By",
"Health Information Range",
"Expires On",
"HI Profiles",
];

export default function ABDMFacilityRecords({ facilityId }: IProps) {
const { data: consentsResult, loading } = useQuery(routes.listConsents, {
query: { facility: facilityId, ordering: "-created_date" },
});

if (loading) {
return <Loading />;
}

return (
<Page title="Patient Consent List">
<div className="px-4 sm:px-6 lg:px-8">
<div className="sm:flex sm:items-center"></div>
<div className="mt-8 flow-root">
<div className="-mx-4 -my-2 overflow-x-auto sm:-mx-6 lg:-mx-8">
<div className="inline-block min-w-full py-2 align-middle sm:px-6 lg:px-8">
{/* eslint-disable-next-line tailwindcss/migration-from-tailwind-2 */}
<div className="overflow-hidden shadow ring-1 ring-black ring-opacity-5 sm:rounded-lg">
<table className="min-w-full table-fixed divide-y divide-gray-300">
<thead className="bg-gray-50">
<tr>
{TableHeads.map((head) => (
<th
scope="col"
className="px-3 py-3.5 text-center text-sm font-semibold text-gray-900"
>
{head}
</th>
))}
<th
scope="col"
className="sticky right-0 top-0 py-3.5 pl-3 pr-4 sm:pr-6"
>
<span className="sr-only">View</span>
</th>
</tr>
</thead>
<tbody className="divide-y divide-gray-200 bg-white">
{consentsResult?.results.map((consent) => (
<tr key={consent.id}>
<td className="px-3 py-4 text-center text-sm">
{consent.patient_abha_object?.name}
<p className="text-gray-600">
({consent.patient_abha})
</p>
</td>

<td className="px-3 py-4 text-center text-sm capitalize">
{new Date(
consent.consent_artefacts?.[0]?.expiry ??
consent.expiry
) < new Date()
? "EXPIRED"
: consent.consent_artefacts?.[0]?.status ??
consent.status}
</td>

<td className="px-3 py-4 text-center text-sm">
{formatDateTime(consent.created_date)}
</td>

<td className="px-3 py-4 text-center text-sm">
{consent.consent_artefacts.length
? formatDateTime(
consent.consent_artefacts[0].created_date
)
: "-"}
</td>

{/* <td className="px-3 py-4 text-center text-sm">
{`${consent.requester?.first_name} ${consent.requester?.last_name}`.trim()}
<p className="text-gray-600">
({consent.requester.username})
</p>
</td> */}

<td className="px-3 py-4 text-center text-sm">
{formatDateTime(
consent.consent_artefacts?.[0]?.from_time ??
consent.from_time
)}{" "}
<br />
{formatDateTime(
consent.consent_artefacts?.[0]?.to_time ??
consent.to_time
)}
</td>

<td className="px-3 py-4 text-center text-sm">
{formatDateTime(
consent.consent_artefacts?.[0]?.expiry ??
consent.expiry
)}
</td>

<td className="px-3 py-4 text-center text-sm">
<div className="flex flex-wrap items-center justify-center">
{(
consent.consent_artefacts?.[0]?.hi_types ??
consent.hi_types
)?.map((hiType) => (
<span className="mb-2 mr-2 rounded-full bg-gray-100 px-2 py-1 text-xs font-medium text-gray-600">
{hiType}
</span>
))}
</div>
</td>

<td className="sticky right-0 whitespace-nowrap bg-white py-4 pl-3 pr-4 text-right text-sm font-medium sm:pr-6">
<div className="flex flex-col items-center justify-center gap-2">
{(consent.consent_artefacts?.[0]?.status ??
consent.status) === "GRANTED" &&
new Date(
consent.consent_artefacts?.[0]?.expiry ??
consent.expiry
) > new Date() ? (
<Link
key={consent.id}
href={`/abdm/health-information/${consent.id}`}
className={
"cursor-pointer text-primary-600 hover:text-primary-900"
}
>
View
</Link>
) : (
<p className="cursor-not-allowed text-gray-600 opacity-70 ">
View
</p>
)}
</div>
</td>
</tr>
))}
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</Page>
);
}
Loading
Loading